This invention relates to data processing systems and in particular to graphical representations of data in such systems. More particularly, the invention relates to a tree structure graphical representation which facilitates navigation among the various nodes of the tree structure.
Computer application programs and operating systems commonly include a user interface feature enabling users to view a listing of information stored on the computer. For example, the Windows 98(trademark) operating system from Microsoft Corporation includes the Windows Explorer(trademark) program to help the user keep track of files stored on resources associated with the computer. An effective arrangement for viewing lists of stored information is helpful if not necessary even in simple personal computer systems since such systems have the capacity to store thousands of files.
Large lists of files, directories, and other computer resources are much easier to understand when portrayed in a hierarchical fashion. A hierarchical representation is an effective method of listing computer resources because it groups related subject matter together in a manner that enables the user to locate desired items more easily. One way to represent a hierarchy is to use a tree structure. A tree structure includes a number of reference points called nodes that together make up a tree. The origin or base of a tree is called the root node, which is characterized by the fact that it has no parent node. Every other node has only one parent and potentially one or more children nodes. The leaf is the lowest node in the hierarchy of the tree structure and thus has no children nodes. This concept of a tree structure can be applied to many types of data or computer resource classifications. Regardless of the type of information portrayed in the tree structure, the nodes which trace along from a given node back through the hierarchy to the root node may be referred to as ancestor nodes for the given node. The series of ancestor nodes together with the given node may be referred to as a branch in the tree structure.
One example of a tree structure is a file system where related information is grouped together using a hierarchy of subdirectories. In this example, the main or root directory is the root node of the tree, and a number of subdirectories to the main directory represent children nodes to the main directory. Each subdirectory can be broken into a number of other subdirectories to achieve additional layers of hierarchy. At the lowest level of the file system hierarchy, a number of files may represent leaf nodes of the tree structure. In addition to directories of files, the concept of the tree structure can be extended to groupings of other types of data.
While using a tree structure is an effective way to represent complex information stored in a computer, it is important for users to be able to readily browse through displayed information. Complex tree structures are common in current computer systems, especially considering the growing memory capacity of the typical personal computers. Computer network applications add further complexity because of the vast amount of data that can be distributed across a network of computers.
Network database applications in particular require an effective user interface to represent database resources distributed across a network of computers. In a typical network database configuration, it is common to have a large number of server database applications distributed throughout the computer network. Each server database application in the network can be associated with a very complex hierarchy of information. In such complex systems, it is very difficult for users to locate desired information without an effective user interface to view and navigate through the complex hierarchy of information.
A text based user interface can be used to navigate through information stored in a hierarchical tree structure, but such user interfaces are limited. These text-based user interfaces do not convey to the user any information about the overall hierarchy because they can only display a flat listing of one level of the hierarchy at a time. Unless the user can remember where items are located in the data structure, he or she must repeatedly page through levels of the hierarchy before finding the proper path to a desired item.
User interfaces displaying a graphical representation of the tree structure offer a more effective interface than the text-based approach. The Windows Explorer(trademark) interface, for example, graphically displays the hierarchy of a file system. This interface allows the user to view several layers of hierarchy at once, and also enables the user to interactively expand nodes in the tree structure. Selecting and clicking on a parent node using a mouse or other user input device modifies the display of the tree structure to show the child nodes of the selected parent node.
However, graphical user interfaces such as the Windows Explorer(trademark) feature in the Windows 98(trademark) operating system do not provide an effective interface for very large and complex tree structures such as those typically encountered in network database applications. The problem arises from the limited space on a monitor display associated with the computer. Complex tree structures may simply require more room than is available on a particular display. Thus, the user can only see a portion of the total complex tree structure at any given time. In order to view other areas of the tree structure, the user must use the scroll features commonly included in the display arrangement. A user may scroll one direction to follow a branch of the tree structure out to the files representing the leaf nodes, and then scroll back the opposite direction to locate another branch and follow it out to its respective leaf nodes.
It is an object of the invention to provide a method, apparatus, and program product for facilitating navigation among tree nodes in a complex tree structure graphically displayed on a monitor associated with a data processing system.
The invention allows a user to select a particular node for display as the root node. Once a particular node is selected as the root node, only that portion of the tree structure branching from the selected node is displayed on the monitor. That is, once a particular node is selected as the root node, a truncated tree structure is displayed showing the selected node as the root node, with the portion of the tree structure not branching from the selected node being omitted from the display. In addition to the portion of the tree structure branching from the selected node, the system also displays a path map containing information about the portion of the tree structure omitted from the display. The preferred path map shows a representation of the selected node and a representation of each ancestor node for the selected node, all arranged in the order of the path from the actual root node to the selected node. This graphical presentation comprising a selected portion of the total tree structure may show the desired portion of the tree structure in normal scale with normal detail and yet eliminate the need to scroll through the tree structure to find the desired node or information. The path map display allows the user to navigate easily back through the omitted portion of the tree structure.
The method of the invention includes displaying the selected portion of a total tree structure in one window on the monitor and the path map in another window both in response to a use-as-root-node input. The selected portion of the total tree structure includes the selected node and the portion of the total tree structure branching from the selected node. The path map is preferably built from an ancestor node list produced in response to the use-as-root-node input.
In the preferred form of the invention, the use-as-root-node command may be selected from a node menu which is displayed on the monitor. The method includes displaying the node menu in response to a node menu input which the user may provide in a number of ways. For example, the user may provide the node menu input by positioning a pointer over a displayed node with a pointer control device such as a mouse and then clicking or double-clicking a mouse button. Alternatively, the node menu may be accessed from a menu bar display. The node menu may comprise a pop-up menu or a pull-down menu listing the use-as-root-node command either alone or with other commands unrelated to the present invention.
These and other objects, advantages, and features of the invention will be apparent from the following description of the preferred embodiments, considered along with the accompanying drawings.